\contentsline {section}{\numberline {1}Introduction}{1}{section.1}
\contentsline {subsection}{\numberline {1.1}Aims}{1}{subsection.1.1}
\contentsline {subsection}{\numberline {1.2}Background}{1}{subsection.1.2}
\contentsline {section}{\numberline {2}Theory}{3}{section.2}
\contentsline {subsection}{\numberline {2.1}Qubits, States and Registers}{3}{subsection.2.1}
\contentsline {subsection}{\numberline {2.2}Gates}{4}{subsection.2.2}
\contentsline {subsubsection}{\numberline {2.2.1}Hadamard Gate}{4}{subsubsection.2.2.1}
\contentsline {subsubsection}{\numberline {2.2.2}Phase Shift Gates}{5}{subsubsection.2.2.2}
\contentsline {subsubsection}{\numberline {2.2.3}NOT Gate}{5}{subsubsection.2.2.3}
\contentsline {subsubsection}{\numberline {2.2.4}CNOT Gate}{6}{subsubsection.2.2.4}
\contentsline {subsubsection}{\numberline {2.2.5}Toffoli Gate}{6}{subsubsection.2.2.5}
\contentsline {subsubsection}{\numberline {2.2.6}Measurement}{7}{subsubsection.2.2.6}
\contentsline {subsection}{\numberline {2.3}Quantum Algorithms}{7}{subsection.2.3}
\contentsline {subsubsection}{\numberline {2.3.1}Grover's Algorithm}{8}{subsubsection.2.3.1}
\contentsline {paragraph}{Problem Structure}{8}{section*.2}
\contentsline {paragraph}{Algorithm Setup}{8}{section*.3}
\contentsline {paragraph}{Performing The Algorithm}{8}{section*.4}
\contentsline {section}{\numberline {3}Implementation}{11}{section.3}
\contentsline {subsection}{\numberline {3.1}Program Description}{11}{subsection.3.1}
\contentsline {subsection}{\numberline {3.2}Structure}{11}{subsection.3.2}
\contentsline {subsection}{\numberline {3.3}GroverCircuit}{12}{subsection.3.3}
\contentsline {subsection}{\numberline {3.4}Register}{12}{subsection.3.4}
\contentsline {subsection}{\numberline {3.5}User Interface}{12}{subsection.3.5}
\contentsline {subsection}{\numberline {3.6}Gates}{13}{subsection.3.6}
\contentsline {subsubsection}{\numberline {3.6.1}Matrix gates}{13}{subsubsection.3.6.1}
\contentsline {subsubsection}{\numberline {3.6.2}Example: CNOT gate}{14}{subsubsection.3.6.2}
\contentsline {subsubsection}{\numberline {3.6.3}Function gates}{14}{subsubsection.3.6.3}
\contentsline {subsubsection}{\numberline {3.6.4}Composite gates}{14}{subsubsection.3.6.4}
\contentsline {subsubsection}{\numberline {3.6.5}A list of implemented gates}{15}{subsubsection.3.6.5}
\contentsline {subsection}{\numberline {3.7}Grover's Iteration}{15}{subsection.3.7}
\contentsline {section}{\numberline {4}Discussion}{17}{section.4}
\contentsline {subsection}{\numberline {4.1}Development Structure}{17}{subsection.4.1}
\contentsline {subsection}{\numberline {4.2}Javadoc}{17}{subsection.4.2}
\contentsline {subsection}{\numberline {4.3}Team Management and Code Development Tools}{18}{subsection.4.3}
\contentsline {section}{\numberline {5}Conclusion}{19}{section.5}
\contentsline {section}{\numberline {6}References}{20}{section.6}
\contentsline {section}{\numberline {7}Appendices}{21}{section.7}
\contentsline {subsection}{\numberline {7.1}UML}{21}{subsection.7.1}
\contentsline {subsection}{\numberline {7.2}GUI}{21}{subsection.7.2}
\contentsline {subsection}{\numberline {7.3}Factory Constructor}{22}{subsection.7.3}
